#include <iostream>
#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/sinks/basic_file_sink.h>
#include <spdlog/async.h>


// 异步日志

int main()
{
    // 设置全局刷新策略  
    spdlog::flush_every(std:: chrono::seconds(1)); //多少秒刷新一次
    // 设置全局刷新日志等级   遇到 xx 日志等级及以上等级就刷新日志
    spdlog::flush_on(spdlog::level::level_enum::debug);
    // 设置全局日志输出等级  只输出 xx 等级及 以上的日志
    spdlog::set_level(spdlog::level::level_enum::debug);

    //创建----异步----日志器 （标准输出 / 文件）
    
    auto logger = spdlog::stdout_color_mt<spdlog::async_factory>("async-logger");

    //设置日志器的刷新策略
    // logger->flush_on(spdlog::level::level_enum::debug);
    // logger->set_level(spdlog::level::level_enum::debug);

    logger->set_pattern("[%n][%H:%M:%S][%t][%-10l] - %v");
    logger->trace("你好 {}", "小明");
    logger->debug("你好 {}", "小明");
    logger->info("你好 {}", "小明");
    logger->warn("你好 {}", "小明");
    logger->error("你好 {}", "小明");


    return 0;
}
